/*
 * File    : /src/views/mark/meditor/config.js
 * Time    : 2021-08-24 15:12:02
 * Author  : Gray Snail
 * Version : 1.0
 * Contact : shtao2011@sina.com
 * License : Copyright (c) 2021 Gray Snail
 * Desc    : 默认配置
 */

// 常量定义

/**
 * 标签类型
 */
export const LabelType = {
  RECT_2D: 21,
  RECT_PT_2D: 22,
  SEGMENT_2D: 23,
  POLY_2D: 24,
  LINE_2D: 25,
  // 3d
  RECT_3D: 31,
}

/**
 * 属性类型
 */
export const AttrType = {
  NUMBER: 1,
  STRING: 2,
  SELECT: 3,
  MULSELECT: 4,
}

/**
 * 属性校验类型
 */
export const AttrRule = {
  REQUIRED: 1,
  UNIQUE: 2,
  REGEXP: 3,
}

/**
 * 参考线方向
 */

export const ReferDirect = {
  HORIZON: 1,
  VERTICAL: 2,
}

/**
 * 示例配置
 */
// export default {
//   // 每一帧包含图片和点云的数量
//   imageCount: 1,
//   pcdCount: 1,

//   /**
//    * 未分类的公共属性
//    */
//   common: {
//     autoAnnotation: false,
//   },

//    labels: {
//     name: 'type',
//     desc: '类型',
//     values: [
//       {
//         name: 'car',
//         desc: '小汽车',
//         color: '#0c0890',
//         type: 21, // LabelType
//         alias: '',
//         width: 2, // 线宽
//         // 自定义属性,存在时覆盖 公共属性
//         attrs: [],
//       },
//     ],
//     required: true,
//   },

//   // 公共属性
//   attrs: [
//     {
//       name: 'trackId',
//       desc: '追踪ID',
//       // 表单控件类型: Number/String/Select/MulSelect
//       input: 'Number',
//       // 表单校验规则: Required/Optional/RegExp
//       rule: 'Required',
//       // 用于提交的表单值,为空时==name
//       field: 'a1',
//       // 0: 全部(default), 其他见 label.type
//       type: 0,
//       // Select/MulSelect时的选择项,RegExp时的正则表达式
//       // values: { [value]: 'label' }, // optional
//       values: null, // optional
//     },
//   ],

//   // 2D 可视化配置
//   view2D: {
//     grid: { row: 2, col: 0 },
//     // 默认笔刷
//     stroke: { point: 5, line: 2, poly: 2, rect: 2 },
//     // 提示框
//     showTip: false,
//     size_2d: true,
//     g_point: true,
//     zoomStricked: true,
//   },

//   view3D: {},

//   // refer lines
//   // direct:  ReferDirect
//   referLines: [
//     { direct: 1, val: 0.5, width: 2, color: '', desc: '' }
//   ],

//   // attributes: unkonw

//   // misc
//   misc: {},

//   // toolbox
//   // 根据 task状态 和 labels 动态决定
// toolbox:{
//   toolname: {
//     ...config
//   }
// }

// }

export default class BaseConfig {
  imageCount = 1
  pcdCount = 1
  track = false

  common = {
    autoAnnotation: false,
    fusionView: false,
  }

  labels = {
    name: 'type',
    desc: '类型',
    values: [],
    required: true,
  }

  // 公共属性
  attrs = []

  // 2D 可视化配置
  view2D = {
    // 默认笔刷
    stroke: { point: 5, line: 2, poly: 2, rect: 2 },
    // 提示框
    showTip: false,
    size_2d: true,
    g_point: true,
    zoomStricked: true,
  }

  view3D = {
    renderType: '',
    cameraPosition: null,
    highLightCubePoints: false,
    size_3d: true,
  }

  // refer lines
  referLines = []

  // toolbox, 快捷键用户自定义?
  toolbox = {
    select: {}, // 默认
  }

  // attributes: unkonw

  // misc
  misc = {}
}
